#include <iostream>


/**
 * const修饰指针有三种情况：
        1. const修饰指针 --- 常量指针
        2.const修饰常量 ----指针常量
        3.const即修饰指针，又修饰常量
 */
int main() {

    int a = 10;
    int b = 20;

    // 常量指针 -- 指针的指向可以修改，但是指针指向的值不可以改
    // 就是 指针存放的地址可以改变， 真实地址里面的数据不可以改变
    const int *p = &a;

    // 指针常量  - 指针的指向不可以修改，但是指针指向的值可以改
    int* const p1 = &a;

    // 指针的指向不可以修改，但是指针指向的值不可以改
    const int* const p2 = &a;

    std::cout << &a << std::endl;
    std::cout << p << std::endl;
    return 0;
}
